A computer network is a collection of interconnected computing devices that exchange data and share resources. In a packet-based network, such as the Internet, the computing devices communicate data by dividing the data into small blocks called packets. The packets are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission.
Certain devices within a network, referred to as routers, maintain tables of routing information that describe available routes through the network. Each route defines a path between two locations on the network. Upon receiving an incoming data packet, the router examines header information within the packet to identify the destination for the packet. Based on the header information, the router accesses the routing table, selects an appropriate route for the packet and forwards the packet accordingly.
Multicasting is a form of communication that allows a source device to send a single packet for distribution to multiple destination devices. With multicasting, the source device sends a single packet over the network to a router configured for multicasting. The router replicates the packet and forwards the copies to other multicast-enabled routers. The other routers, in turn, replicate the packet and repeat the forwarding process so that each of the destination devices receives a copy of the packet. The source device and the destination devices form a “multicast group.” Multicast-enabled routers typically include hardware logic to replicate the multicast packets and forward them to the multicast group. Conventional multicast-enabled routers may perform packet replication in a centralized location. Centralized packet replication may result, however, in packet latency when numerous replications need to be performed and may be subject to single point failures.